package com.jdk8.lambda;

import java.util.Arrays;
import java.util.List;
import java.util.function.Supplier;

import com.jdk8.bean.Book;

public class MethodRefTest {
	/**
	 * 方法引用共分为四类： 1.类名::静态方法名 2.对象::实例方法名 3.类名::实例方法名 4.类名::new
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Book bk0=new Book("t0",100);
		Book bk1=new Book("t1",200);
		Book bk2=new Book("t2",10);
       
		List<Book> bkList=Arrays.asList(bk0,bk1,bk2);
//		bkList.sort((b1,b2) -> b1.getPrice()-b2.getPrice());
//		bkList.forEach(s -> System.out.println(s.getPrice()));
		
		//类：静态方法名
//		bkList.sort(Book :: compareBookeByPrice);
//		bkList.forEach(s -> System.out.println(s.getPrice()));
		
		//类：实例方法名
//		bkList.sort(Book :: compareTo);
//		bkList.forEach(s -> System.out.println(s.getPrice()));
		
		//类：构造函数，要有无参构造方法
		Supplier<Book> supplier = Book::new;
//		bkList.sort(Book :: compareTo);
//		bkList.forEach(s -> System.out.println(s.getPrice()));
		
		
		//对象：实例名
//		BookCompareImpl compare=new BookCompareImpl();
//		bkList.sort(compare :: compare);
//		bkList.forEach(s -> System.out.println(s.getPrice()));

	}

}
